90 PRINT "[147]":POKE 53280,0:POKE 53281,0 100 GOSUB 4000:GOTO 3000 290 PRINT "[156][147] BUILDING TABLE " 292 PRINT "NUM ------- NAME ------ TAPE.ENTRY" 300 FOR V=1 TO TB :GOSUB1000:NEXT:RETURN 490 REM --------------------- ERROR CHK 500 INPUT#15,E,E$,A,B 510 IFE<20ORE=73THENRETURN 520 IFE=50THENRETURN 530 PRINT"THERE IS AN I/O PROBLEM" 540 PRINT"ERROR # IS";E;" ";E$ 550 PRINT"TRACK";A;"; SECTOR";B 560 CLOSE8:CLOSE15 570 PRINT"[156]PRESS SPACE TO CONTINUE[146][145][145]"; 580 IFPEEK(203)=64THEN580 590 IFPEEK(203)<>60THEN580 600 CLR:GOTO90 900 REM OPEN COMMAND CHNL 910 CLOSE15:OPEN 15,8,15:GOSUB490:RETURN 950 RH=INT(RN/256):RL=RN-(256*RH):RETURN 1000 GOSUB900:V$=TB$(V) 1003 PRINT#15,"R0:"+V$+"="+V$:INPUT#15,ER 1010 IF ER<>63 THEN RN=8: GOTO 1100 1020 OPEN8,8,8,"0:"+(V$)+",L,"+CHR$(40):GOSUB490 1030 FOR RN=1TO8:GOSUB950:PRINT#15,"P"+CHR$(96+8)+CHR$(RL)+CHR$(RH)+CHR$(1) 1040 GOSUB490:INPUT#8,AA$,BB$,CC$,DD$,EE$:GOSUB490 1050 IF AA$=CHR$(255)THEN RN=8: GOTO 1090 1060 IF CC$=""THEN 1090 1070 GOSUB 1300:REM STR IN TAB 1090 NEXT 1100 CLOSE8:CLOSE15:FI=1:RETURN 1290 OPEN8,8,8,"0:"+(V$)+",L,"+CHR$(LN) 1300 REM IN TAB 1310 PT=PT+1:N$(PT)=CC$:TG(PT)=PT:TN(PT)=VAL(V$)*10+RN 1312 PRINT" [145]" 1315 PRINT PT-1 ;"- ";CC$;TAB(30);VAL(V$);RN;"[145]" 1320 GOSUB 1800:RETURN 1400 REM GET DIRECTORY 1410 CLOSE15:OPEN15,8,15,"I0":GOSUB490:OPEN2,8,2,"#":GOSUB490:BT=0 1415 PRINT "[146][156][147] GETTING DIRECTORY" 1420 T$=CHR$(18):S$=CHR$(1) 1430 GOSUB 1600:GET#2,T$,S$ 1440 FORI=1TO 8:BP=2+((I-1)*32):GOSUB1650:A1=0 1450 GET#2,A$:IFASC(A$+Z$)<>132 THEN 1520 1460 GET#2,A$,A$ 1470 GET#2,A$:A=ASC(A$+Z$):IF A=160 THEN 1500 1480 IFA<48ORA>57THEN 1520 1490 A=A-48:A1=A1*10+A:GOTO1470 1500 IF A1<1ORA1>200 THEN 1520 1510 GOSUB 1700 1520 NEXT:IF ASC(T$+Z$)<>0THEN1430 1530 CLOSE2:CLOSE15:RETURN 1600 REM READ "U1" 1610 PRINT#15,"U1";2;0;ASC(T$+Z$);ASC(S$+Z$):GOSUB 490 1620 RETURN 1650 REM BUFF PTR 1660 PRINT#15,"B-P";2;BP:GOSUB 490 1670 RETURN 1700 A$=STR$(A1):L=LEN(A$):TB=TB+1:IF TB>200THEN 1740 1710 TB$(TB)=MID$(A$,2,(L-1)) 1720 PRINT "[146] [145]" 1730 PRINT "[146][158] DIRECTORY ENTRY ";TB$(TB);"[145]" 1740 RETURN 1800 REM INSERT IN TABLE 1810 LO=1:HI=PT-1:YW=0:IFPT>(2^PW)THEN PW=PW+1:GOTO1810 1820 DF=INT((HI-LO)/2+.5):MD=LO+DF 1830 IF DF=0 THEN 1870 1835 YW=YW+1:IFYW>PWTHEN 1870 1840 IF CC$>N$(TG(MD)) THEN LO=MD:GOTO1820 1850 IF CC$=N$(TG(MD)) THEN 1870 1860 HI=MD:DF=INT((HI-LO)/2+.5):MD=HI-DF:GOTO 1830 1870 LO=PT:IF CC$>N$(TG(MD))THEN MD=MD+1 1880 TG(LO)=TG(LO-1):LO=LO-1:IF LO>MD THEN 1880 1890 TG(MD)=PT:RETURN 1900 REM ADD ON END/REPL 1910 PRINT "[146][158] BUILD ON END OF TABLE? (Y/N)":TB=0 1920 POKE 198,0:WAIT 198,15:GETA$ 1930 IF A$="N" THEN PRINT " REPLACING TABLE!":GOSUB4100:RETURN 1940 IF A$<>"Y"THEN 1920 1950 PRINT " BUILDING ON THE END OF TABLE!":RETURN 2000 REM DISPLAY NAMES 2010 LC=0:I=0 2020 PRINT "[146][147] ALPHABETIC LIST" 2030 PRINT "NUM ----- NAME ------ TAPE.ENTRY " 2050 LC=LC+1:IF LC>15 THEN GOSUB2300:GOSUB2200 2055 I=I+1:S1=2+-1*(I<10)+-1*(I<100)+-1*(I<1000):L=LEN(N$(TG(I))) 2056 S2=23-L+1*(TN(TG(I))>100)+1*(TN(TG(I))>1000) 2058 IF MID$(N$(TG(I)),1,1)=CHR$(255)THEN LC=LC-1:GOTO2070 2060 PRINT "[159]";I;SPC(S1);N$(TG(I));SPC(S2);TN(TG(I))/10 2070 IF I<(PT-1) THEN 2050 2080 RETURN 2200 REM CLEAR PAGE 2210 PRINT "":FOR J=1 TO 16:PRINT" " 2220 NEXT:PRINT "":RETURN 2300 REM WAIT 2310 POKE 198,0:WAIT 198,15:GETA$:LC=1:RETURN 2500 REM PRINT NAMES 2510 LC=0:I=0:CLOSE4:OPEN4,4:PRINT#4,CHR$(0):IF ST<>0 THEN 2590 2515 CLOSE4:OPEN4,4,0 2520 PRINT#4," ALPHABETIC LIST" 2530 PRINT#4," NUM ----- NAME ------ TAPE.ENTRY ";CHR$(13) 2550 LC=LC+1:IF LC>56 THEN LC=0:FORJ=1TO7:PRINT#4,CHR$(0):NEXT:GOTO2520 2555 I=I+1:S1=2+-1*(I<10)+-1*(I<100)+-1*(I<1000):L=LEN(N$(TG(I))) 2556 S2=23-L+1*(TN(TG(I))>100)+1*(TN(TG(I))>1000) 2558 IF MID$(N$(TG(I)),1,1)=CHR$(255)THEN 2570 2560 PRINT#4," ";I;SPC(S1);N$(TG(I));SPC(S2);TN(TG(I))/10 2570 IF I<(PT-1) THEN 2550 2580 CLOSE4:RETURN 2590 PRINT:PRINT" PRINTER UNAVAILABLE":RETURN 3000 REM MENU 3010 PRINT"":PRINT "[147][213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201]"; 3020 PRINT "[221] [146]D[146]ISPLAY [146]L[146]OAD [146]A[146]DD [221]"; 3030 PRINT "[221] [146]P[146]RINT [146]SAVE [146]B[146]UILD [221]"; 3035 PRINT "[221] [146]M[146]AIN MENU [146]H[146]ELP L[146]O[146]ADSTAR [221]"; 3040 PRINT "[202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][203]"; 3050 POKE 198,0:WAIT 198,15:GET A$: 3060 IF A$="D" THEN GOSUB 2000:GOTO3200:REM DISP 3070 IF A$="P" THEN GOSUB 2500:GOTO3200:REM PRINT 3080 IF A$="M" THEN F$="VCR LIBRARY":N$="MAIN MENU":GOTO4500 3085 IF A$="O" THEN F$="HELLO CONNECT":N$="LOADSTAR":GOTO4500 3090 IF A$="S" THEN GOSUB3300:GOTO3200:REM SAVE 3100 IF A$="A" THEN GOSUB3500:GOTO3200:REM ADD 3110 IF A$="L" THEN GOSUB3400:GOTO3200:REM LOAD 3115 IF A$="H" THEN GOSUB3800:GOTO3200:REM LOAD 3120 IF A$="B" THEN GOSUB1900:GOSUB1400:GOSUB290:GOTO3200:REM BUILD 3150 GOTO3050 3200 PRINT"[146] ANY KEY CONTINUES" 3210 POKE 198,0:WAIT 198,15:GETA$:GOTO 3010 3300 REM SAVE FILE 3310 PRINT "[146] SAVING FILE! ":IFPT>1THEN 3330 3320 PRINT "[158] NO FILE TO SAVE[146]":GOTO3200 3330 CLOSE15:OPEN15,8,15,"I0":GOSUB490:PRINT#15,"S0:999":GOSUB490 3335 CLOSE15:OPEN15,8,15,"I0":GOSUB490:OPEN3,8,3,"@0:999,S,W":GOSUB490 3340 FOR I=1 TO PT:IF LEFT$(N$(TG(I)),1)=CHR$(255) THEN 3360 3350 PRINT#3,I:PRINT#3,N$(TG(I)):PRINT#3,TN(TG(I)):X=I 3360 NEXT:PRINT#3,X+1:PRINT#3,CHR$(255)+CHR$(255)+CHR$(255):PRINT#3,0 3370 CLOSE3:CLOSE15:FI=0:RETURN 3400 REM LOAD FILE 3405 PRINT "[146] LOADING FILE! ":PT=0:PW=0 3410 CLOSE15:OPEN15,8,15,"I0":GOSUB490:PRINT#15,"R0:999=999":INPUT#15,ER 3420 IF ER<>63 THEN 3490 3430 CLOSE15:OPEN15,8,15,"I0":GOSUB490:OPEN3,8,3,"999,S,R":GOSUB490 3440 PT=PT+1:INPUT#3,TG(PT),N$(PT),TN(PT) 3450 IF LEFT$(N$(PT),1)<>CHR$(255) THEN 3440 3460 TG(PT)=PT:N$(PT)=CHR$(255)+CHR$(255)+CHR$(255):TN(PT)=0 3470 CLOSE3:CLOSE15:FI=1:RETURN 3490 PRINT " [158]NO FILE TO LOAD[146]":RETURN 3500 REM ADD/UPDATE 3510 PRINT "[146][147][158] ENTER ADD FILE NAME":A1=0:A1$="" 3515 PRINT " [213][195][195][195][195][201]" 3516 PRINT " [221] [221]" 3517 PRINT " [202][195][195][195][195][203] [145][145]" 3520 GET A$:IF A$=""THEN 3520 3530 A=ASC(A$):IF A=13 THEN 3570 3540 IF A=20 THEN 3600 3550 IF A<48ORA>57THEN3520 3560 IF LEN(A1$)<3 THENA1$=A1$+A$ 3562 PRINT " ";A1$;" [145]":GOTO3520 3570 A=VAL(A1$):IF A<1 OR A>200 THEN 3590 3580 V$=A1$:GOTO3630 3590 PRINT "[146] INVALID FILE NAME":RETURN 3600 L=LEN(A1$):L=L-1:IFL<0THEN L=0 3610 A1$=MID$(A1$,1,L):GOTO3562 3630 CLOSE15:OPEN15,8,15,"I0":PRINT#15,"R0:"+V$+"="+V$:INPUT#15,ER 3640 IF ER=63 THEN PRINT"":GOTO3660 3650 PRINT "[146] [159]FILE NOT FOUND":RETURN 3660 I=0:A=VAL(V$)*10 3670 I=I+1:IFI>PT THEN 3750 3680 IF TN(I)>A AND TN(I)=PT THEN 3670 3710 IF TG(J)<>I THEN 3700 3720 LO=J 3730 TG(LO)=TG(LO+1):LO=LO+1:IFLO"Y"THEN 4530 4550 GOSUB3300:GOTO3200 4560 CLOSE15:OPEN15,8,15,"I0" 4563 PRINT#15,"R0:"+F$+"="+F$:INPUT#15,ER:CLOSE15 4567 IF ER<>63 THEN END 4570 POKE 53280,3:POKE 53281,3:PRINT"[159]" 4580 PRINT"[147]"TAB((40-LEN(N$)-10)/2)"[204]OADING "CHR$(34)N$CHR$(34) 4590 PRINT"[159]NEW":PRINT"LOAD"CHR$(34)F$CHR$(34)",8,1" 4600 PRINT"?C[200](144)C[200](142):RUN" 4610 POKE198,3:POKE631,13:POKE632,13:POKE633,13